package file;

// Input Output 输入输出包
import java.io.File;
import java.io.IOException;

import org.junit.Test;

public class FileDemo {
	@Test
	public void create() {
		// 相对路径, 相对于当前项目路径下
		String relativePath = "./a.txt";
		// 绝对路径, 从根盘符开始走
		String absolutePath = "D:\\2209\\workspace\\java-workspace\\file_0928\\a.txt";
		
		// 1. 创建一个引用指向一个文件   !!!没有创建文件
		File f1 = new File(absolutePath);
		
		// 2. 由父路径和子路径构建一个文件引用
		File f2 = new File("D:\\\\2209\\\\workspace\\\\java-workspace\\\\file_0928","a.txt");
		
		// 已经重写equals了，看文件名一样就true
		System.out.println(f1.equals(f2));
	}
	
	@Test
	public void createFile() throws IOException {
		File f1 = new File("a.txt");
		// 1.判断文件是否不存在
		if (!f1.exists()) {
			// 2.创建文件
			f1.createNewFile();
		}else {
			// 3.文件存在就删除
			f1.delete();
		}
	}
	
	@Test
	public void createDir() throws IOException {
		File f1 = new File("a");
		// 1.判断文件是否不存在
		if (!f1.exists()) {
			// 2.创建目录
			f1.mkdir();
		}else {
			// 3.程序退出前删除
			f1.deleteOnExit();
		}
	}
	
	@Test
	public void others() {
		File f1 = new File("a.txt");
		File f2 = new File("a");
		
		System.out.println("文件名:" + f1.getName());
		System.out.println("文件路径:" + f1.getPath());
		System.out.println("绝对路径:" + f1.getAbsolutePath());
		System.out.println("是否普通文件:" + f1.isFile());
		System.out.println("是否可读:" + f1.canRead());
		System.out.println("是否可写:" + f1.canWrite());
		System.out.println("是否可执行:" + f1.canExecute());
		System.out.println("----------------------------");
		
		System.out.println("目录名:" + f2.getName());
		System.out.println("目录路径:" + f2.getPath());
		System.out.println("绝对路径:" + f2.getAbsolutePath());
		System.out.println("是否目录:" + f2.isDirectory());
		System.out.println("是否可读:" + f2.canRead());
		System.out.println("是否可写:" + f2.canWrite());
		System.out.println("是否可执行:" + f2.canExecute());
	}
	
	@Test
	public void foreachDir() {
		File f2 = new File("a");
		// 1.获取当前目录下所有文件数组
		File[] listFiles = f2.listFiles();
		
		for(File f : listFiles) {
			System.out.println(f.getName());
		}
	}
	
}









